package com.ming.service;

import com.ming.pojo.vo.FileUploadVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 文件服务接口
 */
public interface FileService {

    /**
     * 上传文件
     * @param file 上传的文件
     * @return 文件上传结果
     * @throws IOException IO异常
     */
    FileUploadVO uploadFile(MultipartFile file) throws IOException;

    /**
     * 删除文件
     * @param filename 文件名
     * @throws IOException IO异常
     */
    void deleteFile(String filename) throws IOException;

    /**
     * 检查文件类型是否允许上传
     * @param contentType 文件类型
     * @return 是否允许
     */
    boolean isAllowedFileType(String contentType);

    /**
     * 检查文件大小是否在允许范围内
     * @param fileSize 文件大小（字节）
     * @return 是否允许
     */
    boolean isAllowedFileSize(long fileSize);

    /**
     * 获取当前存储类型
     * @return 存储类型
     */
    String getCurrentStorageType();
}